Servers on the Internet may use Unicast techniques to stream media to clients, where each media streaming client may establish a separate data channel with the server to receive an identical copy of the original media stream. When the number of media streaming clients increases, the bandwidth of the server may be exhausted. Therefore, such a transmission scheme may not be scalable and cannot support large scale video services or applications
To avoid the drawbacks of the client-server model, peer-to-peer technology (P2P) technology may be employed, which can be more robust and more efficient than the pure client-server model. The basic idea of P2P networks is to allow each peer node to assist the server (e.g. media server) in distributing data (e.g. streaming media). A client in a P2P system may not only consume data (e.g. video data) through its download bandwidth, but may share its video data to other peers through its uploading bandwidth.
In certain cases, more than 60% of network traffic over the current Internet may be P2P, with approximately 60% of P2P traffic being video. For last-mile providers, P2P may comprise more than 80% of their traffic. P2P networking is a promising method for delivering video streams to a large scale of peers over the Internet without extra server bandwidth.
Receiver-driven scheduling algorithms (e.g. pull-based packing scheduling algorithm) are employed by most P2P streaming systems, wherein receivers decide which media packets or sub-streams are subscribed to. Furthermore, many P2P users are asymmetric digital subscriber line (ADSL) users whose uploading bandwidth is often smaller than their downloading bandwidth. A key problem of a P2P streaming system is the design of a receiver-driven scheduling algorithm to fully utilize the available bandwidth of the asymmetric peers. Therefore, there remains a need to improve a receiver-driven scheduling algorithm in a P2P streaming system.